<?php
/**
 * VIP套餐验证器
 * @author 王勇程 <laughskydragon@qq.com>
 */

namespace app\common\validate;

/**
 * VIP套餐验证器
 */
class VipPackage extends ValidateBase
{
    // 验证规则
    protected $rule = [
        'name'              => 'require|length:1,50',
        'type'              => 'in:month,year,three_year',
        'duration'          => 'require|integer|gt:0',
        'price'             => 'require|float|egt:0',
        'original_price'    => 'float|egt:0',
        'description'       => 'max:1000',
        'features'          => 'max:2000',
        'sort'              => 'integer|egt:0',
        'status'            => 'in:0,1',
    ];

    // 验证提示
    protected $message = [
        'name.require'          => '套餐名称不能为空',
        'name.length'           => '套餐名称长度为1-50个字符',
        'type.require'          => '套餐类型不能为空',
        'type.in'               => '套餐类型只能为month、year、three_year',
        'duration.require'      => '有效天数不能为空',
        'duration.integer'      => '有效天数必须为整数',
        'duration.gt'           => '有效天数必须大于0',
        'price.require'         => '套餐价格不能为空',
        'price.float'           => '套餐价格必须为数字',
        'price.egt'             => '套餐价格不能为负数',
        'original_price.float'  => '原价必须为数字',
        'original_price.egt'    => '原价不能为负数',
        'description.max'       => '套餐描述不能超过1000个字符',
        'features.max'          => '套餐特权不能超过2000个字符',
        'sort.integer'          => '排序权重必须为整数',
        'sort.egt'              => '排序权重不能为负数',
        'status.in'             => '状态值只能为0或1',
    ];

    // 应用场景
    protected $scene = [
        'add'    => ['name', 'type', 'duration', 'price', 'original_price', 'description', 'features', 'sort', 'status'],
        'edit'   => ['name', 'type', 'duration', 'price', 'original_price', 'description', 'features', 'sort', 'status'],
    ];
}